
package rendi456.structure.stack;

/**
 * Représente un noeud de pile. (À faire imprimé)
 * 
 * @author David Bernard
 * 
 * @param <T> Le type de l'élément contenu de la pile.
 */
public class NoeudPile<T>
{
	private NoeudPile<T> precedent = null;
	private T element = null;

	/**
	 * Instancie un nouveau noeud de pile.
	 */
	public NoeudPile()
	{
		this(null, null);
	}

	/**
	 * Instance un nouveau noeud de pile.
	 * 
	 * @param element l'élément de la pile.
	 */
	public NoeudPile(T element)
	{
		this(element, null);
	}

	/**
	 * Instance un nouveau noeud de pile.
	 * 
	 * @param element l'élément de la pile.
	 * @param precedent le noeud de pile précédent.
	 */
	public NoeudPile(T element, NoeudPile<T> precedent)
	{
		this.setElement(element);
		this.setPrecedent(precedent);
	}

	/**
	 * Acesseur de l'élément.
	 * 
	 * @return l'élément contenue.
	 */
	public T getElement()
	{
		return this.element;
	}

	/**
	 * Mutateur de l'élément.
	 * 
	 * @param element le nouveau contenue de l'élément.
	 */
	public void setElement(T element)
	{
		this.element = element;
	}

	/**
	 * Acesseur du noeud précédent.
	 * 
	 * @return le noeud précédent.
	 */
	public NoeudPile<T> getPrecedent()
	{
		return this.precedent;
	}

	/**
	 * Mutateur de l'attribut précédent.
	 * 
	 * @param precedent le nouveau noeud précédent.
	 */
	public void setPrecedent(NoeudPile<T> precedent)
	{
		this.precedent = precedent;
	}
}
